home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1998 June / Macworld (1998-06).dmg / Shareware World / Info / For Developers / Mesa 3D Graphics Library / ReadMe First < prev   
Text File  |  1998-03-15  |  9KB  |  203 lines

  1. Welcome to Mesa 3D Graphics Library.
  2.  
  3. Disclaimer
  4.  
  5. Mesa is a 3-D graphics library with an API which is very similar to that
  6. of OpenGL*.  To the extent that Mesa utilizes the OpenGL command syntax
  7. or state machine, it is being used with authorization from Silicon Graphics,
  8. Inc.  However, the author makes no claim that Mesa is in any way a
  9. compatible replacement for OpenGL or associated with Silicon Graphics, Inc.
  10. Those who want a licensed implementation of OpenGL should contact a licensed
  11. vendor.  This software is distributed under the terms of the GNU Library
  12. General Public License, see the LICENSE file for details.
  13.  
  14. * OpenGL(R) is a registered trademark of Silicon Graphics, Inc. 
  15.  
  16.  
  17. Author
  18.  
  19. Brian Paul
  20. Avid Technology
  21. 6400 EnterPrise Lane, Suite 201
  22. Madison, WI  53719
  23.  
  24. brianp@elastic.avid.com
  25.  
  26. Formerly employed at the Space Science and Engineering Center at the
  27. University of Wisconsin - Madison.
  28.  
  29. Mac-port done by: 
  30.  
  31. Miklós Fazekas
  32. boga@valerie.inf.elte.hu  
  33.  
  34. All questions about the Mac distribution should sent to me. (boga@valerie.elte.hu)
  35. Also see the Mac-Mesa hompage for the lastest version:
  36. http://valerie.inf.elte.hu/~boga/Mesa.html
  37.  
  38. Installing Mesa for Mac:
  39. •Install the shared libraries:
  40.  
  41. Place the folder named Mesa3D inside the folder System Extensions: Mesa (debug off): into the System Folder:Extensions Folder. (No restart needed)
  42.  
  43. If you wan't to use the Debug Libraries, change the glShdLib to the one located in the Debug Extensions. (note that you should always run with a DebugStr capable debugger. like CW Pro debugger.)
  44.  
  45. Try to compile the program Sample, at Examples:Sample. (Projects for CodeWarrior Pro included)  If you have other CodeWarrior/Compiler, make an ANSI C PPC project, and put the 
  46. "Mesa 3D Graphics Library:Headers" folder into the Access Paths:System Path. Then put the glShdLib, gluShdLib, glutShdLib, aglShdLib from the Libraries folder into the project. Set the application heap to 4000 Kb, and the stack size to 128 kb. Also include the source named GlutHello.c Then run. 
  47. If it doesn't run contact me. (boga@valerie.inf.elte.hu)
  48. Tip: The example folder contains some interesting OpenGL programs.
  49.  
  50.  
  51. •Installing GLUT Documentation:
  52.  
  53. Copy the "glut.qv" file into your QuickView folder (if installed). 
  54. Run QuickView, and type "glut" and press return to test the installation.
  55.  
  56.  
  57.  
  58. Mac implementation notes:
  59. Mesa 3D Graphics Library is a shared library for PowerPC™/CFM-68K based computers running MacOS. The Api is in C with support for development using C++. This library was written with CodeWarrior Pro 2, and you can use best with it. Other compilers with CFM support also sould work.
  60.  
  61.  
  62. RoadMap to enclosed folders:
  63.  
  64. Interfaces - This folder contains the headers.
  65.  
  66. Libraries - This folder contains the link libraries (the shared libraries that you use to link against). You should use the files in this folder to link your application. To write application that use the OpenGL API link against glShdLib,gluShdLib,aglShdLib. To make use of the GLUT toolkit, also link against glutShdLib. To make use of the AUX/TK toolkit also link against the auxShdLib. (Currently avaible for PPC only).
  67.  
  68. Examples - This folder contains sample code to help you get started developing Mesa/OpenGL applications. (Most of these demos from the GLUT distribution, see the GLUT ReadMe int the ReadMe's/License folder). The RedBook folder contains simple examples, the other examples are more complex.
  69.  
  70. Documentation - This folder contains the GLUT databases for the Toolbox Assistant, and a text file desribes AGL, the MacOS interface for Mesa/OpenGL.
  71.  
  72. ReadMe's/License - This folder contains more information about Mesa, GLUT. You should also read the LICENSE and the COPYRIGHT files.
  73.  
  74. System Extensions:Mesa (debug off) - This folder contains optimized versions of the Mesa aglShdLib,glShdLib,gluShdLib,glutShdLib,auxShdLib, extension file.  You should place these files in the Extensions folder inside your System Folder. (No restart needed).
  75.  
  76. Library Source- This folder contains the source code for the Mesa, AGL interface for Mesa,  GLUT for Mac libraries.
  77.  
  78. New for version 3.0b1(98/03/15):
  79. • Updated for Mesa 3.0b2. (fixes small bugs with texturing)
  80. • RAVE driver is functional again.
  81. • Better blending in RAVE dirver.
  82. • Included more demos. + MacOS demos: PowerPlant+GameSprocket demos.
  83. • Now uses software Mesa if the RAVEMDD is in the System Folder.
  84. • Maximum window width is 1600 and not 800 as in Mesa 3.0dx.
  85.  
  86. New for version 3.0d3:
  87. • Minor bugs fixed. (glBitmap/glClear/glClearColor)
  88.  
  89. New for version 3.0d2:
  90. • Uses Mesa 3.0b1 with 1.2 OpenGL api.
  91. • 3.0 version of GLUT. Many code rewritten, near full compliant.
  92. • Faster software driver.
  93. • Fixed a bug which prevent accum based pixel formats.
  94. • Preliminary 3Dfx included.
  95. • More samples.
  96.  
  97. New for version 3.0d1:
  98. • Preliminary 3Dfx included.
  99. • First Mesa 3.0 compile only the fxMesa worked.
  100.  
  101. New for version 2.6b1:
  102. • Uses Mesa 2.6b5.
  103. • MouseUp bug fixed in GLUT.
  104. • GLUT shows no resize bug.
  105. • RAVE can be anabled/disabled with a RAVEMDD plugin.
  106. • Added software driver.
  107. • Better agl-library.
  108.  
  109. New for version 2.6d0:
  110. • Uses Mesa 2.6b1.
  111. • Better glut library.
  112. • Inital RAVE implementation.
  113. • Added support for 16-bit.
  114. • Better glShdLib.dbg
  115. Examples:
  116. • Added demos from 3DFX demos. (Called RAVE Demos).
  117.  
  118. New for version 2.4.1:
  119. • Uses Mesa 2.4b3
  120. • Better glut library.
  121. • Bugs fixed in aglMakeCurrent
  122. • Added support for 16-bit.
  123. • Better glShdLib.dbg
  124. Examples:
  125. • PowerPlant class CGLPane included
  126. • More demos form the GLUT packege
  127. • GLTeapot ported from BeOS.
  128.  
  129. New for version 2.4:
  130.  
  131. • 68K support by thanks to Steeven Bytar.
  132. • AUX/TK is back.
  133. • Distributed on Info-Mac
  134. GLUT:
  135. • glutTimer-bugs fixed.
  136. • faster (spends less time on GetNextEvent).
  137. • glutShowWindow,glutHideWindow,glutDestroyWindow, glutGet implemented.
  138. • New demos from the glut 3.5 package.
  139. MESA/AGL:
  140. • Mesa 2.4b2. (A bug fixed version of Mesa 2.3)
  141. • Revisted frame buffering scheme (read Mac Notes for details).
  142. • Debug version of the glShdLib.
  143.  
  144. GLUT Implementation notes:
  145. The GLUT implementation was completly rewritten for Mesa 3. Write me if you have any incompatibilities with GLUT. 
  146. My GLUT implementation is based on PowerPlant, and has a nice info window. 
  147.  
  148. An online GLUT-help  in QuickView is avaible.
  149.  
  150. GLUT expects a three-button mouse and to implement this on the Macintosh the modifier keys are used in conjunction with the mouse button. The mappings are:
  151.  
  152.     • by itself    ’ Left button
  153.     •    with<Command>    Left button
  154.     •    with<Option> Middle button
  155.     •    with<Control>    Right button
  156.  
  157.     All modifiers may be used at any time during a single button press.
  158.     All of the examples under Examples use the GLUT API.
  159.  
  160. Performance tips:
  161.  
  162. • Set the monitor to 32-bit mode.
  163. • Turn off smooth shading when you don't need it (glShadeModel)
  164. • Turn off depth buffering when you don't need it.
  165. • Turn off dithering when not needed.
  166. • Use double buffering as it's often faster than single buffering.
  167. • Try to maximize the amount of drawing done between glBegin/glEnd pairs.
  168. • Use the info window (command-I) in GLUT to find best performance.
  169. • Optimized polygon rasterizers are employed when:
  170.          RGB mode, not grayscale, not monochrome
  171.          depth buffering is GL_LESS, or disabled
  172.          flat or smooth shading
  173.          dithered or non-dithered
  174.          no other rasterization operations enabled (blending, stencil, etc)
  175. • Optimized line drawing is employed when:
  176.          rendering into back buffer which is an XImage
  177.          RGB mode, not grayscale, not monochrome
  178.          depth buffering is GL_LESS or disabled
  179.          flat shading
  180.          dithered or non-dithered
  181.          no other rasterization operations enabled (blending, stencil, etc)
  182. • Textured polygons are fastest when:
  183.          using a 3-component (RGB), 2-D texture
  184.          minification and magnification filters are GL_NEAREST
  185.          texture coordinate wrap modes for S and T are GL_REPEAT
  186.          GL_DECAL environment mode
  187.          glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST )
  188.          depth buffering is GL_LESS or disabled
  189. • Lighting is fastest when:
  190.          Two-sided lighting is disabled
  191.          GL_LIGHT_MODEL_LOCAL_VIEWER is false
  192.          GL_COLOR_MATERIAL is disabled
  193.          No spot lights are used (all GL_SPOT_CUTOFFs are 180.0)
  194.          No local lights are used (all position W's are 0.0)
  195.          All material and light coefficients are >= zero
  196.  
  197. Further Readings:
  198. For more information about Mesa  please read the Mesa ReadMe in the ReadMe's/License folder.
  199. For more information about glut see the glut.qv file located in the Documentation folder.
  200. For more information about agl see the agl.txt file located in the Documentation folder.
  201. For more information about the Mac implementation see the file Mac Notes inside the ReadMe's/License folder.
  202.  
  203. Miklós Fazekas. 1998/02/05